
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>spksub_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>spksub_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   void spksub_c ( SpiceInt            handle,
                   SpiceDouble         descr[5],
                   ConstSpiceChar    * ident,
                   SpiceDouble         begin,
                   SpiceDouble         end,
                   SpiceInt            newh    ) 

</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
 
   Extract a subset of the data in an SPK segment into a 
   separate segment. 
 </PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
 
   <a href="../req/spk.html">SPK</a> 
   <a href="../req/daf.html">DAF</a> 
 </PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
 
   EPHEMERIS 
 

</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
 
   Variable  I/O  Description 
   --------  ---  -------------------------------------------------- 
   handle     I   Handle of source segment. 
   descr      I   Descriptor of source segment. 
   ident      I   Identifier of source segment. 
   begin      I   Beginning (initial epoch) of subset. 
   end        I   End (final epoch) of subset. 
   newh       I   Handle of new segment. 
 </PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
 
   handle, 
   descr, 
   ident       are the file handle assigned to a SPK file, the 
               descriptor for a segment within the file, and the 
               identifier for that segment. Together they determine 
               a complete set of ephemeris data, from which a 
               subset is to be extracted. 
 
   begin, 
   end         are the initial and final epochs (ephemeris time) 
               of the subset. 
 
   newh        is the file handle assigned to the file in which 
               the new segment is to be written. The file must 
               be open for write access. newh and handle may refer 
               to the same file. 
 </PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
 
   See $Files section. 
 </PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
 
   1) If the condition 
 
         ALPHA  &lt;  BEGIN  &lt;  END  &lt;  OMEGA 
                -         -       - 
 
      is not satisfied (where ALPHA and OMEGA are the initial 
      and final epochs of the segment respectively), the error 
      SPICE(SPKNOTASUBSET) is signaled. 
 
   2) If the segment type is not supported by the current 
      version of <b>spksub_c</b>, the error SPICE(SPKTYPENOTSUPP) 
      is signaled. 
 
   3) If the segment ID string pointer is null, the error 
      SPICE(NULLPOINTER) is signaled.
 
   4) If the segment ID string is empty, the error 
      SPICE(EMPTYSTRING) is signaled.
   </PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
 
   A new segment, which contains a subset of the data in the 
   segment specified by DESCR and HANDLE, is written to the SPK 
   file attached to NEWH. 
 </PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
 
   Sometimes, the segments in official source files---planetary 
   Developmental Ephemeris (DE) files, archival spacecraft 
   ephemeris files, and so on---contain more data than is needed 
   by a particular user. <b>spksub_c</b> allows a user to extract from a 
   segment the smallest amount of ephemeris data sufficient to 
   cover a specific interval. 
 
   The new segment is written with the same identifier as the 
   original segment, and with the same descriptor, with the 
   following components changed: 
 
   1)  ALPHA and OMEGA (DCD(1) and DCD(2)) are assigned the values 
       specified by BEGIN and END. 
 
   2)  The beginning and ending segment addresses (ICD(5) and ICD(6)) 
       are, of course, changed to reflect the location of the new 
       segment. 
 </PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
 
   In the following code fragment, the descriptor for each segment 
   in a source SPK file is examined. For each segment that covers 
   a target interval, the smallest possible subset is extracted into 
   a custom SPK file. 
 
   Assume that the source and custom files have been opened, for 
   read and write access, with handles srchan and custhan respectively. 
 
      #include &quot;SpiceUsr.h&quot;
           .
           .
           .
      <a href="dafbfs_c.html">dafbfs_c</a> ( srchan ); 
      <a href="daffna_c.html">daffna_c</a> ( &amp;found ); 
 
      while ( found ) 
      {
         <a href="dafgs_c.html">dafgs_c</a> ( descr ); 
         <a href="dafus_c.html">dafus_c</a> ( descr, 2, 6, dc, ic ); 
 
         if (  ( dc[0] &lt;= begin ) &amp;&amp; ( end &lt;= dc[1] )  ) 
         {
            <a href="dafgn_c.html">dafgn_c</a>  ( ident );
            <b>spksub_c</b> ( srchan, descr, ident, begin, end, custhan ); 
         }
 
         <a href="daffna_c.html">daffna_c</a> ( &amp;found ); 
      }
 
 </PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
 
   1) There is no way for <b>spksub_c</b> to verify that the descriptor and 
      identifier are the original ones for the segment. Changing 
      the descriptor can cause the data in the new segment to be 
      evaluated incorrectly; changing the identifier can destroy 
      the path from the data back to its original source. 
 </PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
 
   NAIF Document 168.0, &quot;S- and P- Kernel (SPK) Specification and 
   User's Guide&quot; 
 </PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
 
   K.R. Gehringer  (JPL) 
   W.L. Taber      (JPL) 
   N.J. Bachman    (JPL) 
   J.M. Lynch      (JPL) 
   R.E. Thurman    (JPL) 
   I.M. Underwood  (JPL) 
 </PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
 
   -CSPICE Version 1.0.0, 29-JUN-1999 (KRG)(WLT)(NJB)(JML)(RET)(IMU)
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
 
   subset of spk file 
 </PRE>
<h4>Link to routine spksub_c source file <a href='../../../src/cspice/spksub_c.c'>spksub_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:30 2010</pre>

</body>
</html>

